The invention relates to a system and method for conversion of addresses of varying bit lengths between a bus and a device controller. More particularly, the present invention relates to a system and method that uses a simple method to convert address data from one format and length to another in order to communicate between an industry standard bus and existing proprietary logic for device controllers.
In the rapid development of computers many advancements have been seen in the areas of processor speed, throughput, communications, and fault tolerance. Initially computer systems were standalone devices in which a processor, memory and peripheral devices all communicated through a single bus. Later, in order to improve performance, several processors were interconnected to memory and peripherals using one or more buses. Very often the foregoing buses were proprietary to a particular manufacture and thus made it difficult for peripheral equipment from one manufacture to be utilized by another manufacture. Therefore, to overcome this lack of compatibility several industry standard buses were developed such as peripheral component interface (PCI) bus, peripheral component interface extended (PCIX) bus, to universal serial bus (USB) bus, amongst others. These industry standard buses enable different devices, such as, but not limited to, disk drives, printers and other devices and controllers to be easily integrated into a single computer system.
However, there are at least two problems encountered in converting from controllers designed to communicate with the proprietary buses to the use of the foregoing standard buses. First, is that the older controllers have to be redesigned to interface to the standard buses. Second, in many cases the manner in which addressing and commands are handled by these industry standard buses is inadequate for the particular controller. For example, an industry standard bus such as PCIX requires the use of a tag which is five bits long and is utilized primarily for addressing purposes. However, in many controllers a five bit tag is grossly inadequate. This may be for several reasons including the amount of address space that has to be handled by the controller. Further, in many cases the tag is utilized internally by the controller to indicate what operations are to be performed on specific pieces of data. Still further, even when the controller and the bus both require similar information in the tag each may specify a different order for that information. Therefore, manufacturers are faced with the problem of either retaining the proprietary bus as well have incorporating the industry standard buses on the baseboard. This approach utilizes a significant amount of space on a computer baseboard as well as complicating communications on that baseboard.
Therefore, what is required is a system and method in which the proprietary bus may be eliminated from the computer baseboard while at the same time the core logic utilized by the controller that interfaces to to the proprietary bus may be retained. This system and method should enable the simple conversion of a tag to and from the format required by the industry standard bus to that required by core logic of a particular controller.